In many client-server online applications, communications between a client and a corresponding server in a client-server relationship are employed to ensure that the state of the application existing in the client is also reflected in the server. Several reasons may exist for the server validation of client activity. For example, an online gaming application may involve the interaction of multiple clients via the server. Thus, actions of one client may be reflected or duplicated in the client so that results of those actions taking place in other clients may be considered in light of the actions of the first client. In other examples, bonuses, such as “experience points” that may be awarded to the user of the client in response to some favorable action by the user, may need to be validated in the server before such bonuses are awarded.
Validation of a client action in the server generally involves at least some communication between the client and the server. In many implementations, a user interaction with a user interface of the client causes a communication to the server which describes the action occurring in the client. The server then processes the action and transmits a reply communication to the client to indicate the results of the action, which may then be presented to the user. Such use of round-trip communications may result in a significant delay of the results of the action being presented to the user, thus negatively impacting the user experience.